1. Technical Field
This invention generally relates to computer servers and more specifically relates to an apparatus and method for efficiently handling mostly read in a computer server environment that maintains data integrity while maximizing server utilization through workload management.
2. Background Art
Essential to computer performance is the timely availability of data. Computer systems often employ servers that are connected over a network to provide data files and software application files to a number of client machines. The same data is replicated onto multiple servers to achieve high availability, scalability of the systems and higher performance. High availability means availability despite planned outages for upgrades or unplanned outages caused by hardware or software failures through fragmentation and replication of data across multiple servers.
In HA systems and in other computer systems, duplicate data is stored on multiple servers to timely respond to request from many differently clients. Typically, a workload manager with a dispatcher is used to manage the workload of the client requests to ensure efficient utilization of the servers to maximize the performance of the servers. Data stored on a server can generally be classified as one of four types: 1) read/write data, 2) mostly read data with a specific update period, 3) mostly read data with uncertain update times, and 4) read only data. If data stored on the servers is read only data, then workload management can simply direct client requests to access any server. FIG. 2 shows how a client 210 may access the data on any server 212 for read only transactions 214. Since the read only data is current in all the servers, the request for read-only data can be routed to the primary server 216 and to the replicated servers 218, 220.
However, if the data stored on the server is type 1, 2 or 3, then only the data on the primary server 216 is always valid and current. With these other types of data, such as read/write transactional data and mostly read data, the data stored in different servers may be different during data updates. Therefore, for these types of data transactions 222, all clients data requests are directed to the primary server only and all replicated servers are not used for these operations. FIG. 3 illustrates the work load manager (not shown) directing data requests 222 by all clients 212 to the primary server 216. Also, FIG. 3 illustrates the typical situation in HA systems, where all access is made to the primary server, and the other servers are replicated on a delayed basis. These replicated servers are wasted in terms of client access usage. The replicated servers are used only when primary servers fail, but since it is very rare for the primary servers to fail, the servers are not well utilized.
In the prior art, when data stored on the server is mostly read data, the primary server must be used to guarantee the data is current (not stale). Since up to 80% of a typical database contains mostly read data with very few updates and a large number of reads, large amounts of server resources are wasted, and scalability and performance are greatly diminished. Since mostly read data is updated infrequently, the replicated servers could be better utilized at times when they are current and the data is not stale. Without a way to more efficiently utilize servers for mostly read data, the computer industry will continue to suffer from slower response and less efficient utilization of network servers.